<?php
namespace App\Api;

use PhalApi\Api;
use App\Domain\Music as Domain_Music;
/**
 * 音乐
 */

class Music extends Api {

	public function getRules() {
        return array(
            'getCLassMusic' => array(
                'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
				'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
				'classid' => array('name' => 'classid', 'type' => 'int', 'desc' => '音乐分类ID'),
				'p' => array('name' => 'p', 'type' => 'int', 'default' => '0', 'desc' => '页码'),
			),
            
            'getHot' => array(
				'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
				'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
                'p' => array('name' => 'p', 'type' => 'int', 'default' => '0', 'desc' => '页码'),
			),
            
            'search' => array(
				'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
				'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
				'key' => array('name' => 'key', 'type' => 'string', 'desc' => '关键词'),
                'p' => array('name' => 'p', 'type' => 'int', 'default' => '0', 'desc' => '页码'),
			),
            
            'getCollection' => array(
				'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
				'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
                'p' => array('name' => 'p', 'type' => 'int', 'default' => '0', 'desc' => '页码'),
			),
            
            'setCollection' => array(
				'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
				'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
				'musicid' => array('name' => 'musicid', 'type' => 'int', 'desc' => '音乐ID'),
			),
        );
	}
	
    /**
     * 音乐分类
     * @desc 用于获取音乐分类
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return string info[].id 分类ID
     * @return string info[].title 分类名
     * @return string info[].thumb 图标
     * @return string msg 提示信息
     */
	public function getCLass() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());

        $domain = new Domain_Music();
        $list = $domain->getCLass();
        
        $rs['info'] = $list;
		
        return $rs;
	}

    /**
     * 分类下音乐
     * @desc 用于获取分类下音乐列表
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return string info[].id 音乐ID
     * @return string info[].title 名称
     * @return string info[].author 演唱者
     * @return string info[].thumb 封面
     * @return string info[].length 时长
     * @return string info[].href 链接
     * @return string info[].iscollection 是否收藏0否1是
     * @return string msg 提示信息
     */
	public function getCLassMusic() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());

        $uid=\App\checkNull($this->uid);
        $classid=\App\checkNull($this->classid);
        $p=\App\checkNull($this->p);
        
        if(!$classid){
            return $rs;
        }
        
        $domain = new Domain_Music();
        $list = $domain->getCLassMusic($uid,$classid,$p);
        
        $rs['info'] = $list;
		
        return $rs;
	}

    /**
     * 热门
     * @desc 用于获取热门音乐列表
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return string info[].id 音乐ID
     * @return string info[].title 名称
     * @return string info[].author 演唱者
     * @return string info[].thumb 封面
     * @return string info[].length 时长
     * @return string info[].href 链接
     * @return string info[].iscollection 是否收藏0否1是
     * @return string msg 提示信息
     */
	public function getHot() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());

        $uid=\App\checkNull($this->uid);
		$token=\App\checkNull($this->token);
		$p=\App\checkNull($this->p);
        
        $domain = new Domain_Music();
        $list = $domain->getHot($uid,$p);
        
        $rs['info'] = $list;
		
        return $rs;
	}

    /**
     * 搜索
     * @desc 用于搜索音乐
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return string info[].id 音乐ID
     * @return string info[].title 名称
     * @return string info[].author 演唱者
     * @return string info[].thumb 封面
     * @return string info[].length 时长
     * @return string info[].href 链接
     * @return string info[].iscollection 是否收藏0否1是
     * @return string msg 提示信息
     */
	public function search() {
        $rs = array('code' => 0, 'msg' => '', 'info' => array());

        $uid=\App\checkNull($this->uid);
		$token=\App\checkNull($this->token);
		$key=\App\checkNull($this->key);
		$p=\App\checkNull($this->p);
        
        if($key==''){
            $rs['code'] = 1001;
			$rs['msg'] = \PhalApi\T('请输入歌曲名称');
			return $rs;
        }
        
        $domain = new Domain_Music();
        $list = $domain->search($uid,$key,$p);
        
        $rs['info'] = $list;
		
        return $rs;
	}

    /**
     * 我的收藏
     * @desc 用于获取我收藏的音乐列表
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return string info[].id 音乐ID
     * @return string info[].title 名称
     * @return string info[].author 演唱者
     * @return string info[].thumb 封面
     * @return string info[].length 时长
     * @return string info[].href 链接
     * @return string info[].iscollection 是否收藏0否1是
     * @return string msg 提示信息
     */
	public function getCollection() {
        $rs = array('code' => 0, 'msg' => \PhalApi\T('你还没有收藏的音乐'), 'info' => array());

        $uid=\App\checkNull($this->uid);
		$token=\App\checkNull($this->token);
		$p=\App\checkNull($this->p);
        
        $checkToken=\App\checkToken($uid,$token);
		if($checkToken==700){
			$rs['code'] = $checkToken;
			$rs['msg'] = \PhalApi\T('您的登陆状态失效，请重新登陆！');
			return $rs;
		}
        
        $domain = new Domain_Music();
        $list = $domain->getCollection($uid,$p);
        
        $rs['info'] = $list;
		
        return $rs;
	}
     
    /**
     * 收藏/取消收藏
     * @desc 用于用户收藏/取消收藏音乐
     * @return int code 操作码，0表示成功
     * @return array info 
     * @return string info[].iscollection 是否收藏0否1是
     * @return string msg 提示信息
     */
	public function setCollection() {
        $rs = array('code' => 0, 'msg' => \PhalApi\T('成功'), 'info' => array());

        $uid=\App\checkNull($this->uid);
		$token=\App\checkNull($this->token);
		$musicid=\App\checkNull($this->musicid);
        
        $checkToken=\App\checkToken($uid,$token);
		if($checkToken==700){
			$rs['code'] = $checkToken;
			$rs['msg'] = \PhalApi\T('您的登陆状态失效，请重新登陆！');
			return $rs;
		}
        
        $domain = new Domain_Music();
        $list = $domain->setCollection($uid,$musicid);
        
        $rs['info'][0]['iscollection'] = $list;
		
        return $rs;
	}
    
}
